package main

import (
	"encoding/json"
	"flag"
	"os"
	"server/common"
	"server/services/media"
)

var configFile = flag.String("config", "config.json", "config file")

// -------------------------------------------------------------------------------------------------
//
// -------------------------------------------------------------------------------------------------
func main() {
	flag.Parse()
	common.InitLogger()

	config := media.NewDefaultConfig()
	if _, err := os.Stat(*configFile); err == nil {
		common.Logger(common.SERVICE_TYPE_MEDIA).Infof("Loading config from %s", *configFile)
		data, err := os.ReadFile(*configFile)
		if err != nil {
			panic(err)
		}
		if err := json.Unmarshal(data, config); err != nil {
			panic(err)
		}
	}

	common.Logger(common.SERVICE_TYPE_MEDIA).Infof("config: %s", common.ToJson(config))

	service := media.NewMediaService()
	if err := service.Init(config); err != nil {
		common.Logger(common.SERVICE_TYPE_MEDIA).WithError(err).
			Fatal("Failed to initialize media service")
		return
	}

	service.Start()

	common.Logger(common.SERVICE_TYPE_MEDIA).Info("Media service exited")
}
